﻿
layui.use(function () {
    var $ = layui.$;
    var layer = layui.layer;
    var util = layui.util;
    var form = layui.form;
    var table = layui.table;

    var token = localStorage.getItem("token");

    var selectedRows = [];
    var storageslis = {};
    var storageselect = {};

    //显示表格
    function GetInjure(pageNum) {
        var obj = {
            Token: token,
            Pindex: 1,
            Psize: 100,
            InjureCode: $("#InjureCode").val() || '',
            InjureType: $("#InjureType").val() || '',
            AuditStart: $("#AuditStart").val() || '',
        };
        // 发送Ajax请求
        $.ajax({
            url: '/Injure/GetInjureList',  // 这里填上你的后端接口地址
            type: 'get',
            data: obj,
            success: function (response) {
                var res = JSON.parse(response);
                console.log(res);
                if (res != null) {
                    // 渲染表格
                    table.render({
                        elem: '#ID-table',
                        cols: [[
                            { type: 'checkbox', fixed: 'left' },
                            { field: 'injureCode', title: '报损单号', width: 150, fixed: 'left', },
                            { field: 'productsName', title: '产品名称', width: 150 },
                            { field: 'productsCode', title: '产品编号', width: 150 },
                            { field: 'specs', title: '规格', width: 150 },
                            { field: 'injureNum', title: '数量', width: 150 },
                            { field: 'warehouseName', title: '仓库', width: 200 },
                            { field: 'storehouseName', title: '原库位', width: 150 },
                            {
                                field: 'storehouseId',
                                title: '报损库位',
                                width: 150,
                                templet: function (d) {
                                    switch (d.storehouseId) {
                                        case 7:
                                            return '报损仓库';
                                        case 8:
                                            return '报损库位';
                                        case 9:
                                            return '默认库位';
                                        default:
                                            return '报损仓库';
                                    }
                                }
                            },
                            {
                                field: 'injureType',
                                title: '报损类型',
                                width: 150,
                                templet: function (d) {
                                    switch (d.injureType) {
                                        case 1:
                                            return '损坏报损';
                                        case 2:
                                            return '丢失报损';
                                        case 3:
                                            return '其他报损';
                                        default:
                                            return '未知类型';
                                    }
                                    //const injureTypeMap = {
                                    //    1: '损坏报损',
                                    //    2: '丢失报损',
                                    //    3: '其他报损'
                                    //};
                                    //return injureTypeMap[d.injureType] || '未知类型';
                                }
                            },
                            {
                                field: 'auditStart',
                                title: '审核状态',
                                width: 150,
                                templet: function (d) {
                                    switch (d.auditStart) {
                                        case 1:
                                            return '待审核';
                                        case 2:
                                            return '审核成功';
                                        case 3:
                                            return '审核失败';
                                        default:
                                            return '未知类型';
                                    }
                                }
                            },
                            {
                                field: '',
                                title: '操作',
                                width: 200,
                                templet: function (d) {
                                    // 这里的d是每一行的数据对象
                                    return '<a lay-on="test-page" id="detail" data-inProductId="' + d.inProductId + '">查看 </a>' +
                                        '<a lay-on="test-del" id="del" data-inProductId="' + d.inProductId + '">删除 </a>' +
                                        '<a lay-on="test-fan" class="fan" data-productsID="' + d.productsID + '"  href="/Injure/UpdInjure?productsID=' + d.productsID + '&inProductId=' + d.inProductId + '&injureId=' + d.injureId + '">编辑 </a>' +
                                        '<a lay-on="test-ru" id="he" data-injureId="' + d.injureId + '" data-inProductId="' + d.inProductId + '">审核 </a>'
                                }
                            },
                        ]],
                        data: res.data.list,  // 数据源
                        page: true,   // 启用分页
                        limit: 10,    // 每页显示多少条数据
                        limits: [10, 20, 30],  // 分页选择项
                        curr: pageNum,  // 当前页
                        total: res.data.lcount,  // 总记录数
                        loading: true, // 启用加载状态
                        toolbar: "#toolbarDemo",
                        defaultToolbar: ['exports']
                    });

                    // 渲染分页控件
                    var totalPages = Math.ceil(res.lcount / 10);  // 计算总页数
                    layui.laypage.render({
                        elem: 'pagination',
                        count: res.lcount,  // 总记录数
                        limit: 10,
                        curr: pageNum,
                        jump: function (obj, first) {
                            if (!first) {
                                GetInjure(obj.curr);  // 不为第一次调用时，重新渲染表格
                            }
                        }
                    });
                }
            }
        });
    }

    // 初次加载表格数据
    GetInjure(1);

    // 查询按钮点击事件
    $('#searchBtn').click(function () {
        GetInjure(1);  // 重置为第一页，并重新加载数据
    });

    // 获取选中数据按钮
    $('#getSelected').click(function () {
        var checkStatus = table.checkStatus('dataTable');
        var selectedData = checkStatus.data;  // 获取选中的数据
        console.log(selectedData);  // 打印选中的数据
    });


    //获取复选框
    table.on('checkbox(ID-table)', function (obj) {
        console.log(obj);
        // 当前选中的行加入到 selectedRows 数组中
        if (obj.checked) {
            selectedRows.push(obj.data);
        }
        else {
            // 当前取消选中的行从 selectedRows 数组中移除
            selectedRows = selectedRows.filter(row => row.productsID !== obj.data.productsID);
        }
        console.log(selectedRows)
    })


    //查看详情
    $(document).on('click', '#detail', function () {
        var inProductId = $(this).attr('data-inProductId');  // 获取按钮上设置的采购ID
        console.log(inProductId);
        //打开弹框
        var index = layer.open({
            type: 1,
            area: ['800px', '500px'], // 宽高
            content: '<table style="width:650px;height:300px; margin-left:45px">' +
                '<tr>' +
                '<td>报损单号:</td>' +
                '<td id="injureCode"></td>' +
                '<td style="width:100px">报损类型：</td>' +
                '<td id="injureType" style="width:100px"></td>' +
                '<td style="width:100px">报损状态：</td>' +
                '<td id="injureStart"></td>' +
                '</tr>' +
                '<tr>' +
                '<td>制单人：</td>' +
                '<td id="makePerson"></td>' +
                '<td>制单日期：</td>' +
                '<td id="markTime"></td>' +
                '</tr>' +
                '</table>' +
                '<table class= "layui-table" id="InProductId-Id" >' +
                '<thead>' +
                '<tr>' +
                '<col width="150">' +
                '<col>' +
                '</tr>' +
                '</thead>' +
                '</table>',

            success: function (lay, index) {
                form.render();
            }
        });
        var obj = {
            Token: token,
            InProductId: inProductId
        }
        $.ajax({
            url: '/Injure/GetInjureDetail',
            type: "get",
            data: obj,
            success: (ress) => {
                var res = JSON.parse(ress);
                console.log(res);

                // 渲染表格
                table.render({
                    elem: '#InProductId-Id',
                    cols: [[
                        { field: 'productsCode', title: '产品编号', width: 150 },
                        { field: 'productsName', title: '产品名称', width: 150 },
                        { field: 'specs', title: '产品规格', width: 150 },
                        { field: 'injureNum', title: '报损数量', width: 150 },
                        {
                            field: 'storehouseId',
                            title: '当前库位',
                            width: 120,
                            templet: function (d) {
                                switch (d.storehouseId) {
                                    case 7:
                                        return '报损仓库';
                                    case 8:
                                        return '报损库位';
                                    case 9:
                                        return '默认库位';
                                    default:
                                        return '未知类型';
                                }
                            }
                        },

                    ]],
                    data: res.data,  // 数据源
                });

                //反填报损信息
                $(res.data).each(function () {
                    console.log(res.data[0])
                    $("#injureCode").text(this.injureCode);
                    $("#injureType").text(this.injureType);
                    $("#productsName").text(this.productsName);
                    $("#productsCode").text(this.productsCode);
                    $("#markTime").text(this.markTime);
                    $("#makePerson").text(this.makePerson);
                    $("#specs").text(this.specs);
                    $("#injureNum").text(this.injureNum);
                    $("#warehouseName").text(this.warehouseName);
                    $("#vendorName").text(this.vendorName);
                    $("#injureStart").text(this.injureStart);
                })
            }
        })
    })


    //删除
    $(document).on('click', '#del', function () {
        var InProductId = $(this).attr('data-InProductId')
        layer.confirm('确认删除吗？', {
            btn: ['确定', '关闭'] //按钮
        }, function () {
            var model = {
                Token: token,
                InProductId: [
                    InProductId
                ],
                delName: '张三'
            }
            $.ajax({
                url: '/Injure/DelInjure',
                type: 'put',
                data: model,
                success: function (res) {
                    var d = JSON.parse(res);
                    console.log(d);
                    if (d != null) {
                        layer.msg('删除成功', { icon: 1 }, function () {
                            location.reload();
                        });
                    }
                }
            })
        }, function () {
            // 关闭框第二个回调
            layer.msg('操作已取消', {
                time: 2000 // 2秒后自动关闭
            });
        });
    })


    //批量删除
    $(document).on('click', '#bathdel', function () {
        if (selectedRows.length == 0) {
            layer.msg('至少选择一个要删除的数据');  // '5' 是警告图标
            return;
        }
        console.log(selectedRows)
        var InProductId = selectedRows.map(function (row) {
            return row.inProductId;
        });
        console.log(InProductId)
        layer.confirm('确认删除吗？', {
            btn: ['确定', '关闭'] //按钮
        }, function () {
            var model = {
                Token: token,
                InProductId: InProductId,
                delName: '张三'
            }
            $.ajax({
                url: '/Injure/DelInjure',
                type: 'put',
                data: model,
                success: function (res) {
                    var d = JSON.parse(res);
                    console.log(d);
                    if (d != null) {
                        layer.msg('删除成功', { icon: 1 }, function () {
                            location.reload();
                        });
                    }
                }
            })
        }, function () {
            // 关闭框第二个回调
            layer.msg('操作已取消', {
                time: 2000 // 2秒后自动关闭
            });
        });
    });


    //点击编辑
    $(document).on('click', "#upd", function () {
        console.log(selectedRows)
        if (selectedRows.length != 1) {
            layer.msg('请选择一个要修改的数据');  // '5' 是警告图标
            return;
        }
        var inProductId = selectedRows[0].inProductId
        var productsID = selectedRows[0].productsID
        location.href = '/Injure/UpdInjure?productsID=' + productsID + '&inProductId=' + inProductId + '&injureId=' + d.injureId;
    })


    //审核
    $(document).on('click', "#he", function () {
        var inProductId = $(this).attr('data-inProductId');  // 获取按钮上设置的采购ID
        //打开弹框
        var index = layer.open({
            type: 1,
            area: ['800px', '500px'], // 宽高
            content: '<table style="width:650px;height:300px; margin-left:45px">' +
                '<tr>' +
                '<td>报损单号:</td>' +
                '<td id="injureCode"></td>' +
                '<td style="width:100px">报损类型：</td>' +
                '<td id="injureType" style="width:100px"></td>' +
                '<td style="width:100px">报损状态：</td>' +
                '<td id="injureStart"></td>' +
                '</tr>' +
                '<tr>' +
                '<td>制单人：</td>' +
                '<td id="makePerson"></td>' +
                '<td>制单日期：</td>' +
                '<td id="markTime"></td>' +
                '<td>审核原因：</td>' +
                '<td><textarea placeholder="请输入" class="layui-textarea"  id="auditResult"></textarea></td>' +
                '</tr>' +
                '</table>' +
                '<table class= "layui-table" id="InProductId-Id" >' +
                '<thead>' +
                '<tr>' +
                '<col width="150">' +
                '<col>' +
                '</tr>' +
                '</thead>' +
                '</table>' +
                '<button type="button" class="layui-btn layui-btn-primary "  id="yes">审核通过</button>' +
                '<button type="button" class="layui-btn layui-btn-primary " id="no">审核不通过</button>',

            success: function (lay, index) {
                form.render();
            }
        });

        //反填
        var obj = {
            Token: token,
            InProductId: inProductId
        }
        $.ajax({
            url: '/Injure/GetInjureDetail',
            type: "get",
            data: obj,
            success: (ress) => {
                var res = JSON.parse(ress);
                console.log(res);

                // 渲染表格
                table.render({
                    elem: '#InProductId-Id',
                    cols: [[
                        { field: 'productsCode', title: '产品编号', width: 150 },
                        { field: 'productsName', title: '产品名称', width: 150 },
                        { field: 'specs', title: '产品规格', width: 150 },
                        { field: 'injureNum', title: '报损数量', width: 150 },
                        {
                            field: 'storehouseId',
                            title: '当前库位',
                            width: 120,
                            templet: function (d) {
                                switch (d.storehouseId) {
                                    case 7:
                                        return '报损仓库';
                                    case 8:
                                        return '报损库位';
                                    case 9:
                                        return '默认库位';
                                    default:
                                        return '未知类型';
                                }
                            }
                        },

                    ]],
                    data: res.data,  // 数据源
                });

                //反填报损信息
                $(res.data).each(function () {
                    console.log(res.data[0])
                    $("#injureCode").text(this.injureCode);
                    $("#injureType").text(this.injureType);
                    $("#productsName").text(this.productsName);
                    $("#productsCode").text(this.productsCode);
                    $("#markTime").text(this.markTime);
                    $("#makePerson").text(this.makePerson);
                    $("#specs").text(this.specs);
                    $("#injureNum").text(this.injureNum);
                    $("#warehouseName").text(this.warehouseName);
                    $("#vendorName").text(this.vendorName);
                    $("#injureStart").text(this.injureStart);
                })
            }
        })



        //审核通过
        $(document).on('click', "#yes", function () {
            var shenhe = {
                InProductId: inProductId,
                AuditStart: 2,
                AuditResult: $("#auditResult").val() || '',
                Token:token
            }
            $.ajax({
                url: '/Injure/AuditInjure',
                type: 'get',
                data: shenhe,
                success: function (d) {
                    var res = JSON.parse(d);
                    console.log(res);
                    if (res.data == 1) {
                        layer.msg('审核通过', { icon: 1 }, function () {
                            location.reload();
                        });
                    }
                }
            })
        })

        //审核不通过
        $(document).on('click', "#no", function () {
            var shenhe = {
                InProductId: inProductId,
                AuditStart: 3,
                AuditResult: $("#auditResult").val() || '',
                Token: token
            }
            $.ajax({
                url: '/Injure/AuditInjure',
                type: 'get',
                data: shenhe,
                success: function (d) {
                    var res = JSON.parse(d);
                    console.log(res);
                    if (res.data == 1) {
                        layer.msg('审核不通过', { icon: 1 }, function () {
                            location.reload();
                        });
                    }
                }
            })
        })


    })





});